683
80
233
---
title: "index"
author: "Daniel Segura"
date: "24/7/2021"
output:
flexdashboard::flex_dashboard:
orientation: rows
social: menu
source_code: embed
---
```{r message=FALSE, warning=FALSE}
library(flexdashboard)
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
library(raster)
library(ggplot2)
library(rgdal)
library(tidyverse)
```
```{r}
orquideas <- st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/orchidaceae-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
```
```{r}
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
```
```{r}
provincias <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
quiet = TRUE
)
```
```{r}
alt <-
getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
# Reproyección de la capa de altitud a CRTM05
alt <-
alt %>%
projectRaster(crs = 4326)
# Recorte de la capa de altitud con base en la capa vectorial de provincias
altitud <-
alt %>%
crop(provincias) %>%
mask(provincias)
```
```{r}
st_crs(orquideas) <- 4326
```
```{r}
orquideas <-
orquideas %>%
st_join(cantones["canton"])%>%st_join(provincias["provincia"])
```
```{r}
orquideas<-
orquideas%>%
mutate(coordinateUncertaintyInMeters= as.numeric(coordinateUncertaintyInMeters))%>%
mutate(eventDate=as.Date(eventDate,"%Y-%m-%d"))
orquideas<-
orquideas%>%
filter(!is.na(coordinateUncertaintyInMeters), coordinateUncertaintyInMeters <= 1000)
```
```{r}
orquideas_species_total <- orquideas %>% group_by(species) %>% count(species)
orquideas_genus_total <- orquideas %>% group_by(genus) %>% count(genus)
orquideas_total <- nrow(orquideas)
```
Registros
=======================================================================
Row
-----------------------------------------------------------------------
### Registros de presencia {.value-box}
```{r cantidad-total-registros-presencia}
valueBox(value=orquideas_total,
caption= "Cantidad total de registos de presencia",
icon="fas fa-feather",
color= "#b1ff8a"
)
```
### Cantidad de géneros {.value-box}
```{r cantidad-total-generos}
valueBox(value=nrow(orquideas_genus_total),
caption= "Cantidad total de géneros",
icon="fas fa-spa",
color= "#d0ea4d"
)
```
### Cantidad de especies {.value-box}
```{r cantidad-total-especies}
valueBox(value=nrow(orquideas_species_total),
caption= "Cantidad total de especies",
icon="fas fa-spa",
color= "#ffc24d"
)
```
Row
----------------------------------------------------------------------
### Registros de presencia
```{r tabla-DT}
orquideas%>%
st_drop_geometry()%>%
dplyr::select(species, eventDate, stateProvince, canton)%>%
datatable(colnames = c("Especies","Fecha", "Provincia", "Cantón"),
options = list(
pageLength=5,
language= list(url= "//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json")
)
)
```
### Grafico pastel
``` {r gráfico-1}
sorted_orq <-
orquideas_species_total %>%
filter(!is.na(species), species != "") %>%
arrange(desc(n))
blank_orq <- orquideas_species_total %>%
st_drop_geometry() %>%
filter(is.na(species)| species == "")
blank_orq$species <- "Otras"
top_10 <- sorted_orq %>% slice(1:10)
others_orq <- sorted_orq %>%
st_drop_geometry() %>%
slice(11:n()) %>% merge(blank_orq, all = TRUE) %>% summarize(n = sum(n), species="Otras")
top_orq <- merge(top_10, others_orq, all = TRUE)
Grafi_pie<- data.frame("categorie"= rownames(top_orq), top_orq)
datos<-Grafi_pie[, c("categorie", "species", "n")]
plot_ly(
datos,
labels= ~species,
values= ~n,
type = "pie"
)%>%
layout(
title="Cantidad de registros por especie y porcentaje de orquideas",
xaxis= list(
showgried= FALSE,
zeroline= FALSE,
showticklabels= FALSE
),
yaxis= list(
showgried= FALSE,
zeroline=FALSE,
showticklabels= FALSE)
)
```
Datos
=======================================================================
Row
----------------------------------------------------------------------
### Mapa Capa leaflet agrupada (clustered)
```{r mapa}
orquideas$species[orquideas$species == ""] <- "Otras"
orquideas_especies <-
orquideas %>%
group_by(provincia) %>%
summarize(especies = n())
# Paleta de colores
colores_registros <-
colorNumeric(
palette = "YlGnBu",
domain = orquideas_especies$especies,
na.color = "transparent"
)
# Plantilla de raster
raster_plantilla <-
altitud %>%
aggregate(fact = 12)
# Rasterización
orquides_raster_especies <-
rasterize(orquideas,
raster_plantilla,
field = 1,
fun = "count")
# Paleta de colores para celdas
raster_pal <-
colorNumeric(
c("#9ac121", "#d2ff46", "#e7ff2c", "#f5ff62", "#f4ff9f", "#f4ffd1"),
values(orquides_raster_especies),
na.color = "transparent"
)
# Mapa Leaflet
leaflet() %>%
addTiles(group = "OSM") %>%
addCircleMarkers(
data = orquideas,
stroke = F,
radius = 4,
fillColor = "#e66a95",
fillOpacity = 1,
popup = paste(
paste(
"Provincia:",
orquideas$provincia
),
paste(
"Especies:",
orquideas$species
),
paste(
"Cantón:",
orquideas$canton
),
paste(
"Fecha:",
orquideas$eventDate
),
sep = '
'
),
clusterOptions = markerClusterOptions(),
group = "Clustered"
) %>%
addRasterImage(
orquides_raster_especies,
colors = raster_pal,
opacity = 1,
group = "Celdas"
) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c("Clustered", "Celdas")
) %>%
addLegend(
pal = raster_pal,
values = values(orquides_raster_especies),
position = "bottomright",
title = "Cantidad de
especies
por celda",
group = "Registros-Orquideas"
)
```